/***************************************************************
 * Name:      PitchPerfectorMain.h
 * Purpose:   Defines Application Frame
 * Author:    Ramon van Dam and Susan Laraghy ()
 * Created:   2009-03-09
 * Copyright: Ramon van Dam and Susan Laraghy ()
 * License:
 **************************************************************/

#ifndef PITCHPERFECTORMAIN_H
#define PITCHPERFECTORMAIN_H

//(*Headers(PitchPerfectorFrame)
#include "tabview.h"
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/menu.h>
#include <wx/textctrl.h>
#include <wx/spinctrl.h>
#include <wx/toolbar.h>
#include <wx/panel.h>
#include <wx/choice.h>
#include <wx/button.h>
#include <wx/scrolbar.h>
#include <wx/frame.h>
#include <wx/gauge.h>
#include <wx/statusbr.h>
//*)
#include "song.h"
#include "engine.h"
using namespace std;

class song;

class PitchPerfectorFrame: public wxFrame
{
    public:

        PitchPerfectorFrame(wxWindow* parent,wxWindowID id = -1);
        virtual ~PitchPerfectorFrame();

    private:

        // own functions
        void loadSong();
        void playSong();
        void stopSong();
        void updateToolBar();
        // own variables
        song* theSong;
        engine *theEngine;


        //(*Handlers(PitchPerfectorFrame)
        void OnQuit(wxCommandEvent& event);
        void OnAbout(wxCommandEvent& event);
        void OnMenuPlaygroundSelected(wxCommandEvent& event);
        void OnMenuLoadSongSelected(wxCommandEvent& event);
        void OnToolLoadSongClicked(wxCommandEvent& event);
        void ONtoolPlayClicked(wxCommandEvent& event);
        void OnMenuSongPlaySelected(wxCommandEvent& event);
        void OnMenuSongPropertiesSelected(wxCommandEvent& event);
        void OnToolSwitchSoundClicked(wxCommandEvent& event);
        void OntxtLogText(wxCommandEvent& event);
        void OnToolStopSongClicked(wxCommandEvent& event);
        void OnScrlTabViewScroll(wxScrollEvent& event);
        void OnScrlTabViewScrollThumbTrack(wxScrollEvent& event);
        void OnScrlTabViewScrollPageUp(wxScrollEvent& event);
        void OnScrlTabViewScrollPageDown(wxScrollEvent& event);
        void OnScrlTabViewScrollChanged(wxScrollEvent& event);
        void OnButDetectTresholdClick(wxCommandEvent& event);
        void OnChoSpeedSelect(wxCommandEvent& event);
        //*)

        //(*Identifiers(PitchPerfectorFrame)
        static const long ID_STATICTEXT1;
        static const long ID_STATICTEXT2;
        static const long ID_STATICTEXT3;
        static const long ID_STATICTEXT4;
        static const long ID_STATICTEXT7;
        static const long ID_STATICTEXT8;
        static const long ID_STATICTEXT5;
        static const long ID_STATICTEXT6;
        static const long ID_STATICTEXT9;
        static const long ID_CHOICE1;
        static const long ID_STATICTEXT11;
        static const long ID_SPINCTRL1;
        static const long ID_BUTTON1;
        static const long ID_GAUGE1;
        static const long ID_TABVIEW;
        static const long ID_SCROLLBAR1;
        static const long ID_TEXTCTRL1;
        static const long ID_PANEL1;
        static const long idMenuPlayground;
        static const long idMenuQuit;
        static const long idMenuLoadSong;
        static const long idMenuPlaySong;
        static const long idMenuStopSong;
        static const long idMenuSongProperties;
        static const long idMenuAbout;
        static const long ID_STATUSBAR1;
        static const long idToolLoadSong;
        static const long idToolPlaySong;
        static const long idToolStopSong;
        static const long idToolSwitchSound;
        static const long ID_TOOLBAR1;
        //*)

        //(*Declarations(PitchPerfectorFrame)
        wxToolBarToolBase* ToolBarItem4;
        wxStaticText* txtSongTempo;
        wxMenuItem* menuPlayground;
        wxToolBar* ToolBar1;
        tabView* tabViewCanvas;
        wxToolBarToolBase* ToolBarItem3;
        wxMenuItem* menuLoadSong;
        wxMenuItem* menuSongProperties;
        wxMenuItem* MenuItem5;
        wxStaticText* StaticText2;
        wxMenu* Menu3;
        wxStaticText* StaticText6;
        wxStaticText* txtSongArtist;
        wxChoice* choSpeed;
        wxPanel* Panel1;
        wxStaticText* StaticText1;
        wxTextCtrl* txtLog;
        wxStaticText* txtSongMeter;
        wxStaticText* StaticText3;
        wxSpinCtrl* spnTreshold;
        wxGauge* gauMonitor;
        wxScrollBar* scrlTabView;
        wxToolBarToolBase* ToolBarItem1;
        wxStaticText* StaticText5;
        wxMenuItem* menuSongPlay;
        wxStatusBar* StatusBar1;
        wxButton* butDetectTreshold;
        wxStaticText* StaticText4;
        wxToolBarToolBase* ToolBarItem2;
        wxStaticText* txtSongTitle;
        //*)

        DECLARE_EVENT_TABLE()
};

#endif // PITCHPERFECTORMAIN_H
